package one.undefined.Listeners.Interactions;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;


public class KickCommand extends ListenerAdapter {
    @Override
    public void onSlashCommand(SlashCommandEvent event) {
        if (!event.getName().equals("kick")) return;

        Guild guild = event.getGuild();

        if (event.getMember().getId().equals(event.getOption("user").getAsString())) {
            event.reply("Вы не можете применить это действие на себя").setEphemeral(true).queue();
            return;
        };

        if (!event.getMember().hasPermission(Permission.KICK_MEMBERS)) {
            event.reply("Вы не имеете прав на кик пользователей.").setEphemeral(true).queue();
            return;
        };

        if (!guild.getSelfMember().hasPermission(Permission.KICK_MEMBERS)) {
            event.reply("У меня нет прав на кик пользователей! Обратитесь к администрации сервера.").setEphemeral(true).queue();
            return;
        };
        try {
            Member member = event.getOption("user").getAsMember();

            member.kick().queue();
            event.reply("Пользователь `" + member.getUser().getAsTag() + "` был кикнут.").queue();
            return;
        } catch (Exception e) {
            event.reply("Произошла ошибка! Возможно роль этого пользователя выше моей.")
                .setEphemeral(true)
                .queue();
        };
    }
}